package com.sunop.comment.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.sunop.comment.model.Comment;
import com.sunop.comment.model.CommentPageQueryDTO;
import com.sunop.comment.model.CommentReplyDTO;
import com.sunop.comment.model.CommentSendDTO;
import com.sunop.panticommon.entity.PageResult;
import com.sunop.panticommon.entity.Result;

/**
 * @since 2025-03-25
 */
public interface CommentService extends IService<Comment> {

    Result sendComment(CommentSendDTO commentSendDTO);

    PageResult pageQuery(CommentPageQueryDTO commentPageQueryDTO);

    Result delById(Integer id);

    Result sendReply(CommentReplyDTO commentSendDTO);

    PageResult replyPageQuery(CommentPageQueryDTO commentPageQueryDTO, int cid);

    Result delReplyById(Integer id);

    Result commentLike(Integer commentId);

    Result commentUnlike(Integer commentId);

    Result collectComment(Integer commentId);

    Result uncollectComment(Integer commentId);

    Result getCollectedComments(int page, int size, boolean reverseOrder);

    long getCollectedCount();

    boolean isCommentCollected(Integer commentId);
}
